/*
 * ArenaTicketMain - Venda de Bilhetes Eletronicos para Espetaculos (Arena Entretenimento S.A.)
 * IPagamentoDAO.java
 * ©2006
 */

package br.unicamp.ic.inf300.arena.persistencia.dao;

import br.unicamp.ic.inf300.arena.modelo.vendas.CartaoCredito;
import br.unicamp.ic.inf300.arena.modelo.vendas.ValeEntrada;
import br.unicamp.ic.inf300.framework.persistencia.IDAOBase;

/**
 * @author  inf312
 */
public interface IPagamentoDAO extends IDAOBase {
	public static final String TABELA_BD = "ARENAVENDAS.Pagamento";

	//Pagamento
	public static final String COLUMN_CODIGO_PK = "codpagto";
	public static final String COLUMN_TIPO = "tipo";
	public static final String COLUMN_VALOR = "valor";
	//Pagamento (CartaoCredito)
	public static final String COLUMN_NUMERO_CARTAO = "numerocartao";
	public static final String COLUMN_BANDEIRA = "bandeira";
	//Pagamento (ValeEntrada)
	public static final String COLUMN_VALIDADE = "validade";
	public static final String COLUMN_NUMERO_ESTORNO = "codestorno";

	/**
	 * Efetiva insercao de um pagamento na base quando este for do tipo com cartao cred.
	 * 
	 * @param cartao
	 * @return boolean 
	 * @throws Exception 
	 */
	public boolean inserir(CartaoCredito cartao) throws Exception;

	/**
	 * Efetiva insercao de um pagamento na base quando este for do tipo com vale entrada 
	 * 
	 * @param vale
	 * @return boolean 
	 * @throws Exception
	 */
	public boolean inserir(ValeEntrada vale) throws Exception;

	/**
	 * 
	 * @return int
	 * @throws Exception
	 */
	public int obterCodPagto() throws Exception;
}